/**
 * Esta clase representa una venta con cuenta corriente
 * en pesos realizada en una sucursal.
 */
package ventas;

import sucursal.Sucursal;
import clientes.Cliente;
import clientes.ListaDeCompras;
import exceptions.VentaYaAbonadaException;

/**
 * @author Lucas Alan Silvestri.
 *
 */
public class VentaConCuentaCorrienteEnPesos extends
		VentaConCuentaCorriente {

	/**
	 * Constructor de la clase.
	 * @param unaListaDeCompras es una lista con los productos
	 * que desea comprar el cliente.
	 * @param sucursalDondeSeRealizaLaVenta es la sucursal donde
	 * se realiza la venta.
	 * @param clienteQueDeseaRealizarLaCompra es el cliente
	 * quien quiere realizar la compra de productos.
	 */
	public VentaConCuentaCorrienteEnPesos(ListaDeCompras unaListaDeCompras,
			Sucursal sucursalDondeSeRealizaLaVenta,
			Cliente clienteQueDeseaRealizarLaCompra) {
		super(unaListaDeCompras, sucursalDondeSeRealizaLaVenta,
				clienteQueDeseaRealizarLaCompra);
	}

	/**
	 * @return si el cliente puede pagar los productos.
	 * @throws VentaYaAbonadaException 
	 */
	@Override
	protected boolean elClientePuedePagarLosProductos() throws VentaYaAbonadaException {
		return this.getClienteQueDeseaRealizarLaCompra().puedePagarElMontoDesdeCCPesos(
				this.montoAPagarPorLosProductos());
	}
	
	/**
	 * cobrara los productos al cliente.
	 * @throws VentaYaAbonadaException 
	 */
	@Override
	protected void cobrarProductos() throws VentaYaAbonadaException {
		this.getClienteQueDeseaRealizarLaCompra().descontarDeCCPesos(
				this.montoAPagarPorLosProductos());
		this.entregarTicket();
	}
}
